(function(){

	$.fn.Blocks = function(options){


		var constructor = {

			cCanvas : $("#block-container"), // Рабочая область
			cControl : $("#control"), // Область для инструметов

			result : "", // Выходной результат. Строка, сгенерированая из объекта project

			action : {
				blocks : {
					getDefaultOptions : function(){
						var opt = {
							name : "no_name",
							width : "50%",
							height : "50%",
							align : "",
							padding : "10px",
							margin : "10px",
							border : "blue solid 1px"
						}
					},
					getParent : function(){
						this.find(false, 0)
					},
					add : function(options, parent){
						//console.log(constructor.project);
						parent.childs.push(options);
						this.list.push(this.counter);
						this.counter++;
						//console.log(this.counter);
					},
					remove : function(){},
					edit : function(){},
					select : function(){},
					unselect : function(){},

					/*Системная*/
					find : function(structure, id){
						var str = structure || constructor.project;//[0]; // Объект в котором искать
						console.log(str);
						if (str.childs[id] !== undefined){
							return str.childs[id];
						}
						if (str.childs != undefined){
							// Смотрим детей
							$(str.childs).each(function(item, index){
								console.log(item + " - " + index);
								//this.find()
							});
						} else {
							// Детей нет, смотрим свойства
							
						}							

						console.log(str);

					},

					current : {
						selected : 0,
						lastAdded : 0,
						level : 0
					},
					list : ["main"], // список ИД-шников
					counter : 1
				},
				project : {
					compile : function(){},
					save : function(){},
					open : function(){}
				}
			},

			// Объект с текущим состоянием проекта
			project : {
				0 : {
					options : {
						name : "main"
					},
					childs : {}
				}, 		
			}

		}

		// Бинды
		$(document).on("click", "#control #add", function(){
			var opt = constructor.action.blocks.getDefaultOptions();
			var parent = constructor.action.blocks.getParent();
			constructor.action.blocks.add(opt, parent);
		});

		return $(this);
	}

})();

var project = {
	id : 0,
	options : {
		name : "name"
	},
	childs : {
		0: {
			options : {
				name : "block_1",
				width : "50%",
				height : "800px",
				align : "left",
				padding : "0 12px 1em auto",	
			},
			childs : {
				0 : {
					options : {
						name : "block_1",
						width : "50%",
						height : "300px",
						align : "left"
					}
				},
				1 : {
					name : "block_1",
					width : "50%",
					height : "300px",
					clear : "both"
				}
			}
		},
		1: {
			name : "block_1",
			width : "50%",
			height : "400px",
			childs : {}
		},
		2: {
			name : "block_1",
			width : "50%",
			height : "400px",
			clear : "both",
			childs : {}
		},
		3: {
			name : "block_1",
			width : "100%",
			height : "400px",
			childs : {}
		}
	}
}

//console.log(project);
